home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-09 | 7.7 KB | 250 lines | [TEXT/PARZ] |
- START
- 64 PE
- 4 PORTS
- SCALAR I4 8( I8 ) I4 B1
- VECTOR I2 I5 B3
- 1 : GOTO 22;
- 2 : PROC 1 VECTOR I1;
- POPV VI1:1;
- VI[VI1:1] := 0;
- PUSHV VI1:1;
- RETURN;
- 3 : PROC 1;
- ERROR "value out of range";
- RETURN;
- 4 : PROC 1;
- ERROR "division by 0";
- RETURN;
- 5 : PROC 1
- SCALAR
- VECTOR I3 I1; group number 1
- PUSHV ADDR VI1:3;
- 6 : VI1:1 := ID - 1; for PIC calculating DIMi
- VI1:2 := VI1:1 MOD 8; DIM2
- VI1:1 := VI1:1 / 8; DIM1
- 7 : VI1:3 := VI1:1 * 8;
- 8 : VI1:4 := VI1:2 + 1;
- 9 : VI1:3 := VI1:3 + VI1:4;
- VI1:3 := VI1:3 + 1;
- IF VI1:1 < 0 CALL 2;
- IF VI1:1 > 7 CALL 2;
- IF VI1:4 < 0 CALL 2;
- IF VI1:4 > 7 CALL 2;
- CONNECT 1 TO 2 AT VI1:3;
- 10 : VI1:3 := VI1:1 * 8;
- 11 : VI1:4 := VI1:2 - 1;
- 12 : VI1:3 := VI1:3 + VI1:4;
- VI1:3 := VI1:3 + 1;
- IF VI1:1 < 0 CALL 2;
- IF VI1:1 > 7 CALL 2;
- IF VI1:4 < 0 CALL 2;
- IF VI1:4 > 7 CALL 2;
- CONNECT 2 TO 1 AT VI1:3;
- 13 : VI1:4 := VI1:1 + 1;
- 14 : VI1:3 := VI1:4 * 8;
- 15 : VI1:3 := VI1:3 + VI1:2;
- VI1:3 := VI1:3 + 1;
- IF VI1:4 < 0 CALL 2;
- IF VI1:4 > 7 CALL 2;
- IF VI1:2 < 0 CALL 2;
- IF VI1:2 > 7 CALL 2;
- CONNECT 3 TO 4 AT VI1:3;
- 16 : VI1:4 := VI1:1 - 1;
- 17 : VI1:3 := VI1:4 * 8;
- 18 : VI1:3 := VI1:3 + VI1:2;
- VI1:3 := VI1:3 + 1;
- IF VI1:4 < 0 CALL 2;
- IF VI1:4 > 7 CALL 2;
- IF VI1:2 < 0 CALL 2;
- IF VI1:2 > 7 CALL 2;
- CONNECT 4 TO 3 AT VI1:3;
- 19 : POPV VI1:3;
- 20 : RETURN; group number : 1
- 21 : PROC 1; configuration : PIC
- VI0:1 := ID - 1; for PIC calculating DIMi
- VI0:2 := VI0:1 MOD 8; DIM2
- VI0:1 := VI0:1 / 8; DIM1
- RETURN; configuration : PIC
- 22 : CALL 5; connections
- 23!20 : SI0:1 := 8; line 20 column 2
- 24!22 : SI0:3 := 0; line 22 column 2
- 25 : SI0:69 := 7;
- 26!22 : IF SI0:3 > SI0:69 GOTO 43; line 22 column 2
- 27!23 : SI0:4 := 0; line 23 column 4
- 28 : SI0:70 := 7;
- 29!23 : IF SI0:4 > SI0:70 GOTO 41; line 23 column 4
- 30!24 : IF SI0:3 < 0 CALL 3; line 24 column 6
- 31 : IF 7 < SI0:3 CALL 3;
- 32 : IF SI0:4 < 0 CALL 3;
- 33 : IF 7 < SI0:4 CALL 3;
- 34 : SI0:72 := SI0:4 * SIZE( I1 );
- 35 : SI0:71 := ADDR SI0:5 + SI0:72;
- 36 : SI0:72 := SI0:3 * SIZE( I8 );
- 37 : SI0:71 := SI0:71 + SI0:72;
- 38 : SI[SI0:71] := 0;
- 39 : SI0:4 := SI0:4 + 1;
- 40 : GOTO 29;
- 41 : SI0:3 := SI0:3 + 1;
- 42 : GOTO 26;
- 43!27 : SI0:3 := 0; line 27 column 2
- 44 : SI0:69 := 7;
- 45!27 : IF SI0:3 > SI0:69 GOTO 57; line 27 column 2
- 46!28 : IF SI0:3 < 0 CALL 3; line 28 column 4
- 47 : IF 7 < SI0:3 CALL 3;
- 48 : IF SI0:3 < 0 CALL 3;
- 49 : IF 7 < SI0:3 CALL 3;
- 50 : SI0:71 := SI0:3 * SIZE( I1 );
- 51 : SI0:70 := ADDR SI0:5 + SI0:71;
- 52 : SI0:71 := SI0:3 * SIZE( I8 );
- 53 : SI0:70 := SI0:70 + SI0:71;
- 54 : SI[SI0:70] := 1;
- 55 : SI0:3 := SI0:3 + 1;
- 56 : GOTO 45;
- 57!30 : SI0:3 := 1; line 30 column 2
- 58 : SI0:69 := 5;
- 59!30 : IF SI0:3 > SI0:69 GOTO 72; line 30 column 2
- 60!31 : IF SI0:3 < 0 CALL 3; line 31 column 4
- 61 : IF 7 < SI0:3 CALL 3;
- 62 : SI0:71 := SI0:3 * SIZE( I1 );
- 63 : SI0:70 := ADDR SI0:5 + SI0:71;
- 64 : SI[SI0:70] := 1;
- 65!32 : IF SI0:3 < 0 CALL 3; line 32 column 4
- 66 : IF 7 < SI0:3 CALL 3;
- 67 : SI0:71 := SI0:3 * SIZE( I8 );
- 68 : SI0:70 := ADDR SI0:5 + SI0:71;
- 69 : SI[SI0:70] := 1;
- 70 : SI0:3 := SI0:3 + 1;
- 71 : GOTO 59;
- 72!36 : WRITE EOL; line 36 column 2
- 73!37 : WRITE " ORIGINAL IMAGE"; line 37 column 2
- 74!38 : WRITE EOL; line 38 column 2
- 75!39 : SI0:3 := 7; line 39 column 2
- 76 : SI0:69 := 0;
- 77!39 : IF SI0:3 < SI0:69 GOTO 95; line 39 column 2
- 78!40 : SI0:4 := 0; line 40 column 4
- 79 : SI0:70 := 7;
- 80!40 : IF SI0:4 > SI0:70 GOTO 92; line 40 column 4
- 81!41 : IF SI0:3 < 0 CALL 3; line 41 column 6
- 82 : IF 7 < SI0:3 CALL 3;
- 83 : IF SI0:4 < 0 CALL 3;
- 84 : IF 7 < SI0:4 CALL 3;
- 85 : SI0:72 := SI0:4 * SIZE( I1 );
- 86 : SI0:71 := ADDR SI0:5 + SI0:72;
- 87 : SI0:72 := SI0:3 * SIZE( I8 );
- 88 : SI0:71 := SI0:71 + SI0:72;
- 89 : WRITE SI[SI0:71] 2;
- 90 : SI0:4 := SI0:4 + 1;
- 91 : GOTO 80;
- 92!43 : WRITE EOL; line 43 column 4
- 93 : SI0:3 := SI0:3 - 1;
- 94 : GOTO 77;
- 95!46 : CALL 21; line 46 column 2
- 96 : LOAD VI0:3 WITH SI0:5;
- 97 : GOTO 199; line 48 column 2
- 98!49 : SI0:2 := SI0:1 / 2; line 49 column 4
- 99!50 : CALL 21; line 50 column 4
- 100!51 : IF SI0:1 = 0 CALL 4; line 51 column 6
- 101 : VI0:7 := VI0:1 MOD SI0:1;
- 102!52 : IF SI0:1 = 0 CALL 4; line 52 column 6
- 103 : VI0:6 := VI0:2 MOD SI0:1;
- 104!54 : VI0:4 := VI0:3; line 54 column 6
- 105!55 : VB0:1 := VI0:6 < SI0:2; line 55 column 6
- 106 : VB0:2 := TRUE;
- 107 : IF VB0:1 CALL 124;
- 108 : IF VB0:2 CALL 110;
- 109 : GOTO 139;
- 110 : PROC 1;
- 111!58 : IF SI0:2 > 0 GOTO 113; line 58 column 24
- 112 : ERROR "number must be positive";
- 113 : SI0:69 := 0;
- 114 : PROPAGATE VI0:4 OUT 4 IN 3;
- 115 : SI0:69 := SI0:69 + 1;
- 116 : IF SI0:69 < SI0:2 GOTO 114;
- 117!60 : VB0:1 := VI0:7 < SI0:2; line 60 column 24
- 118 : IF VB0:1 CALL 120;
- 119 : GOTO 123;
- 120 : PROC 1;
- 121!60 : VI0:5 := VI0:4; line 60 column 41
- 122 : RETURN;
- 123 : RETURN;
- 124 : PROC 1;
- 125 : VB0:2 := FALSE;
- 126!55 : IF SI0:2 > 0 GOTO 128; line 55 column 24
- 127 : ERROR "number must be positive";
- 128 : SI0:69 := 0;
- 129 : PROPAGATE VI0:4 OUT 3 IN 4;
- 130 : SI0:69 := SI0:69 + 1;
- 131 : IF SI0:69 < SI0:2 GOTO 129;
- 132!57 : VB0:3 := VI0:7 >= SI0:2; line 57 column 24
- 133 : IF VB0:3 CALL 135;
- 134 : GOTO 138;
- 135 : PROC 1;
- 136!57 : VI0:5 := VI0:4; line 57 column 41
- 137 : RETURN;
- 138 : RETURN;
- 139!63 : VI0:4 := VI0:3; line 63 column 6
- 140!64 : VB0:2 := VI0:7 < SI0:2; line 64 column 6
- 141 : VB0:1 := TRUE;
- 142 : IF VB0:2 CALL 159;
- 143 : IF VB0:1 CALL 145;
- 144 : GOTO 174;
- 145 : PROC 1;
- 146!67 : IF SI0:2 > 0 GOTO 148; line 67 column 24
- 147 : ERROR "number must be positive";
- 148 : SI0:69 := 0;
- 149 : PROPAGATE VI0:4 OUT 1 IN 2;
- 150 : SI0:69 := SI0:69 + 1;
- 151 : IF SI0:69 < SI0:2 GOTO 149;
- 152!69 : VB0:2 := VI0:6 >= SI0:2; line 69 column 24
- 153 : IF VB0:2 CALL 155;
- 154 : GOTO 158;
- 155 : PROC 1;
- 156!69 : VI0:5 := VI0:4; line 69 column 41
- 157 : RETURN;
- 158 : RETURN;
- 159 : PROC 1;
- 160 : VB0:1 := FALSE;
- 161!64 : IF SI0:2 > 0 GOTO 163; line 64 column 24
- 162 : ERROR "number must be positive";
- 163 : SI0:69 := 0;
- 164 : PROPAGATE VI0:4 OUT 2 IN 1;
- 165 : SI0:69 := SI0:69 + 1;
- 166 : IF SI0:69 < SI0:2 GOTO 164;
- 167!66 : VB0:3 := VI0:6 < SI0:2; line 66 column 24
- 168 : IF VB0:3 CALL 170;
- 169 : GOTO 173;
- 170 : PROC 1;
- 171!66 : VI0:5 := VI0:4; line 66 column 41
- 172 : RETURN;
- 173 : RETURN;
- 174!72 : VI0:3 := VI0:5; line 72 column 6
- 175!74 : SI0:1 := SI0:2; line 74 column 4
- 176!76 : CALL 21; line 76 column 4
- 177 : STORE VI0:3 TO SI0:5;
- 178!78 : WRITE EOL; line 78 column 4
- 179!79 : SI0:3 := 7; line 79 column 4
- 180 : SI0:69 := 0;
- 181!79 : IF SI0:3 < SI0:69 GOTO 199; line 79 column 4
- 182!80 : SI0:4 := 0; line 80 column 6
- 183 : SI0:70 := 7;
- 184!80 : IF SI0:4 > SI0:70 GOTO 196; line 80 column 6
- 185!81 : IF SI0:3 < 0 CALL 3; line 81 column 8
- 186 : IF 7 < SI0:3 CALL 3;
- 187 : IF SI0:4 < 0 CALL 3;
- 188 : IF 7 < SI0:4 CALL 3;
- 189 : SI0:72 := SI0:4 * SIZE( I1 );
- 190 : SI0:71 := ADDR SI0:5 + SI0:72;
- 191 : SI0:72 := SI0:3 * SIZE( I8 );
- 192 : SI0:71 := SI0:71 + SI0:72;
- 193 : WRITE SI[SI0:71] 2;
- 194 : SI0:4 := SI0:4 + 1;
- 195 : GOTO 184;
- 196!83 : WRITE EOL; line 83 column 6
- 197 : SI0:3 := SI0:3 - 1;
- 198 : GOTO 181;
- 199!48 : SB0:1 := SI0:1 > 1; line 48 column 2
- 200 : IF SB0:1 GOTO 98;
- 201!86 : WRITE " FINAL IMAGE"; line 86 column 2
- 202 : END; IMAGE_ROTATION
- STOP
-